<?php

error_reporting(E_ALL);

/**
 * clase encargada de realizar todo el trabajo de manejo de datos y depende del
 *
 * @author Venegas Garcia Gerardo
 */

if (0 > version_compare(PHP_VERSION, '5')) {
    die('This file was generated for PHP 5');
}

/**
 * clase contenedora de los metodos que permiten el manejo de datos dentro del
 *
 * @author Venegas Garcia Gerardo
 */
require_once('class.Modelo.php');

/**
 * clase que genera la imagen que se usara para contener los datos del usuario
 *
 * @author Venegas Garcia Gerardo
 */
require_once('class.Vista.php');

/* user defined includes */
// section 10-25-3--56--6a6e9ed3:13cf3efb39b:-8000:0000000000000899-includes begin
// section 10-25-3--56--6a6e9ed3:13cf3efb39b:-8000:0000000000000899-includes end

/* user defined constants */
// section 10-25-3--56--6a6e9ed3:13cf3efb39b:-8000:0000000000000899-constants begin
// section 10-25-3--56--6a6e9ed3:13cf3efb39b:-8000:0000000000000899-constants end

/**
 * clase encargada de realizar todo el trabajo de manejo de datos y depende del
 *
 * @access public
 * @author Venegas Garcia Gerardo
 */
class Controlador
{
    // --- ASSOCIATIONS ---


    // --- ATTRIBUTES ---

    /**
     * campo que define al objeto de la clase
     *
     * @access public
     * @var Vista
     */
    public $miVista = null;

    /**
     * campo que define al objeto de la clase hija(modelo)
     *
     * @access public
     * @var Modelo
     */
    public $miModelo = null;

    /**
     * guarda los mensajes que se mostraran en la vista
     *
     * @access public
     * @var String
     */
    public $mensaje = null;

    // --- OPERATIONS ---

    /**
     * metodo set de la lista
     *
     * @access public
     * @author firstname and lastname of author, <author@example.org>
     * @return mixed
     */
    public function Lista()
    {
        // section 10-25-3--56--6a6e9ed3:13cf3efb39b:-8000:00000000000008A1 begin
		$datos=$this->miModelo->getAllRows();
		$this->miVista->listRecords($datos,$this->mensaje);
        // section 10-25-3--56--6a6e9ed3:13cf3efb39b:-8000:00000000000008A1 end
    }

    /**
     * metodo set de alta
     *
     * @access public
     * @author firstname and lastname of author, <author@example.org>
     * @return mixed
     */
    public function Alta()
    {
        // section 10-25-3--56--6a6e9ed3:13cf3efb39b:-8000:00000000000008A3 begin
		if(@$_REQUEST[Aceptar]){
			$this->miModelo->insert($_REQUEST);
			$this->mensaje="Registro Fue Dado de Alta";
			$this->Lista();
		}
		else
		$this->miVista->newRecord();
        // section 10-25-3--56--6a6e9ed3:13cf3efb39b:-8000:00000000000008A3 end
    }

    /**
     * metodo set para la edicion
     *
     * @access public
     * @author firstname and lastname of author, <author@example.org>
     * @return mixed
     */
    public function Editar()
    {
        // section 10-25-3--56--6a6e9ed3:13cf3efb39b:-8000:00000000000008A5 begin
		if(@$_REQUEST[Aceptar]){
			$this->miModelo->update($_REQUEST);
			$this->mensaje="Registro Modificado";
			$this->Lista();
			
		}
		else{
		$datos=$this->miModelo->searchById(@$_REQUEST[ID]);
		$this->miVista->editRecord($datos,$this->mensaje);
		}
        // section 10-25-3--56--6a6e9ed3:13cf3efb39b:-8000:00000000000008A5 end
    }

    /**
     * metodo set para la eliminacion
     *
     * @access public
     * @author firstname and lastname of author, <author@example.org>
     * @return mixed
     */
    public function Borrar()
    {
        // section 10-25-3--56--6a6e9ed3:13cf3efb39b:-8000:00000000000008A7 begin
		if(@$_REQUEST[Aceptar]){
			$this->miModelo->delete($_REQUEST);
			$this->Lista();
		}
		else{
		$datos=$this->miModelo->searchById(@$_REQUEST[ID]);
		$this->miVista->deleteRecord($datos,$this->mensaje);
		}
        // section 10-25-3--56--6a6e9ed3:13cf3efb39b:-8000:00000000000008A7 end
    }

    /**
     * metodo constructor de la clase
     *
     * @access public
     * @author firstname and lastname of author, <author@example.org>
     * @return mixed
     */
    public function Controlador()
    {
        // section 10-25-3--56--6a6e9ed3:13cf3efb39b:-8000:00000000000008A9 begin
		$this->miModelo = new Modelo();
		$this->miVista = new Vista();
		// Vista
		if(@$_REQUEST["Controlador"]=="" || @$_REQUEST[Cancelar]){
			$this->Lista();
		}
		else
		{
			if(@$_REQUEST["Controlador"]=="Nuevo")
			$this->Alta();	
			if(@$_REQUEST["Controlador"]=="Editar")
			$this->Editar();
			if(@$_REQUEST["Controlador"]=="Borrar")
			$this->Borrar();
			if(@$_REQUEST["Controlador"]=="Buscar")
			$this->Buscar();
			if(@$_REQUEST["Controlador"]=="Buscar2")
			$this->Buscar2();
		}
        // section 10-25-3--56--6a6e9ed3:13cf3efb39b:-8000:00000000000008A9 end
    }

    /**
     * Busca el producto por descripcion
     *
     * @access public
     * @author firstname and lastname of author, <author@example.org>
     * @return mixed
     */
    public function Buscar()
    {
        // section -87--2-5--50--369d60b7:13d123ed99d:-8000:0000000000000AA5 begin
		$datos=$this->miModelo->searchByDescripcion($_REQUEST["Descripcion"]);		
		$this->miVista->listRecords($datos,$this->mensaje);		
        // section -87--2-5--50--369d60b7:13d123ed99d:-8000:0000000000000AA5 end
    }

    /**
     * Busca el producto por fecha
     *
     * @access public
     * @author firstname and lastname of author, <author@example.org>
     * @return mixed
     */
    public function Buscar2()
    {
        // section 10-25-3--59-315f7b1:13d13024bb9:-8000:0000000000000AB7 begin
		$datos=$this->miModelo->searchByFecha($_REQUEST["Fecha"],$_REQUEST["Fecha2"]);
		$this->miVista->listRecords($datos);
        // section 10-25-3--59-315f7b1:13d13024bb9:-8000:0000000000000AB7 end
    }

} /* end of class Controlador */

?>